package main
import "fmt"
func main(){
	var number int
	var shuzi int
	var num *int
	shuzi = 10
	number = 100
	num = &number
	fmt.Printf("number type is %T\n", number)
	fmt.Printf("shuzi type is %T\n", shuzi)
	fmt.Printf("num type is %T\n", num)
	
	fmt.Printf("================================================================\n")

	fmt.Printf("number = %d , shuzi = %d , *num = %d\n", number, shuzi, *num)
	fmt.Printf("&number = %p , &shuzi = %p , num = %p , &num = %v\n", &number, &shuzi, num, &num)
	
	fmt.Printf("================================================================\n")
	
	*num = 200
	fmt.Printf("number = %d , shuzi = %d , *num = %d\n", number, shuzi, *num)
	fmt.Printf("&number = %p , &shuzi = %p , num = %p , &num = %v\n", &number, &shuzi, num, &num)
	
	fmt.Printf("================================================================\n")
	
	num = &shuzi
	*num = 20
	fmt.Printf("number = %d , shuzi = %d , *num = %d\n", number, shuzi, *num)
	fmt.Printf("&number = %p , &shuzi = %p , num = %p , &num = %v\n", &number, &shuzi, num, &num)
}
